10 REM" [210]ENNBAHN [214]2.11 11 [143]"************************* 12 REM" (W) BY [212].[194]AADE 13 [143]" 02/1999 - 08/2000 14 REM" EMAIL : 15 [143]" TORSTEN@SPORT/MOELLER.DE 16 REM"************************* 17 [143] 40 G[178][194](186): [143]" # OF ASCLOPPY 45 EM=58: REM" # OF INTERRUPTS 50 W[178]0.7: [143]" LOOP WAITING TIME 60 A=PEEK(53433)AND128 61 REM" [211][195][208][213] ENABLED ? 62 [139] A[178]128 [167] 70:[143]" NO (null)LEN(null)(null) 63 POKE53374,0:POKE53366,0:POKE53375,0 64 REM" OPTIMIZE [211][195][208][213] FOR [194][193][211][201][195] 65 [151] 53371,0:[143]" (null)LEN(null)(null) -> 20(null)LEFT$Z 66 PRINT"[211][195][208][213] FOUND ..." 70 IF PEEK(49153)=173 THEN 90 71 REM" [212][201][205][197][210] ALLWAYS LOADED 72 [153]"LOADING (null)RIGHT$(null)VAL(null)-(null)2 ..." 80 [143]" LOAD INTERRUPT ROUTINE 83 SYS 57812("TIMER-V2"),G,1 84 POKE780,0 85 SYS 65493 86 REM" WIT THIS [211][217][211]'S YOU CAN LOAD NEW PROGRAM PARTS WITOUT NEW START 90 [151] 56325,EM:[143]" # RIGHT$NTERRUPTS DEFAULT=58 95 SYS 49152: REM" INIT INTERRUPT ROUTINE 100 [141] 1100: [143]" INIT PROGRAM 101 POKE53370,0:REM" [211][195][208][213] -> 1 [205][200]Z 102 [153]"START MAIN PROGRAM ..." 103 A[178]100:[141] 1000:[143]" SOUND 104 FOR L=0 TO W*200:NEXT 105 A=160:GOSUB 1000 106 FOR L=0 TO W*200:NEXT 107 A=70:GOSUB 1000:FORL=0TOW*300:NEXT 108 POKE 53771,0:REM" [211][195][208][213] -> 20 [205][200]Z 110 [143]" MAIN PROGRAM ***************** 120 GOSUB 1200: REM" INIT SCREEN 130 [141] 1400: [143]" DRIVER/# OF LAPS 140 POKE49242,255:REM"1/10'' INTERIM1 150 [151]49245,255:[143]"1/10'' INTERIM2 160 POKE49236,255:REM"1/10'' DRIVER1 165 [151]49239,255:[143]"1/10'' DRIVER2 167 REM" IF CONTENT=255, THEN NO SWITCH WAS ACTUATED 170 L%(1)[178][171]1:L%(2)[178][171]1:[143]" ALWAYS NO LAP DRIVEN 175 ZB%(1)=32767:ZB%(2)=32767:REM" RESET BEST TIME 180 ZR%(1)[178]0:ZR%(2)[178]0:[143]" RESET LAP TIME 190 GOSUB 2000: REM" READY-STEADY-GO! 195 [161] A$:[143]" RESET KEY BUFFER 200 GOSUB 3000: REM" THE [210][193][195][197] 900 [153]"STOP ANOTHER RACE (J/N) ? WAIT" 910 [161] A$ 920 [139] [168](A$[178]"J" [176] A$[178]"N" [176] A$[178]"Y")[167] 910 930 [139] A$[178]"N" [167] 1900:[143]" THE END... 980 GOTO 110 1000 REM "MAKE SOUND --> A - FREQUENCY 1010 [151] 54296,15:[151]54273,A:[151]54277,9 1020 [151]54278,9:[151]54276,17:[151]54276,16 1030 [142] 1100 [143]" INIT SCREEN 1110 PRINT"[158]":REM" CLEAR SCREEN, PRINT MODE, INK COLOR 1120 [151]53280,11:[151]53281,11:[143]" BACKGROUND/FRAME COLOR 1130 DIM PO$(2):REM"LEFT/RIGHT - 1/2 1140 PO$(1)[178]"" 1141 PO$(2)[178]"" 1150 S1$[178]"PLAYER1" 1151 S2$[178]"PLAYER2" 1152 L0%[178]3 1170 [151] 56579,255:[143]" INIT (null)(null)VAL(null)(null)(null)(null)(null) 1180 GOSUB 1600:REM" POWER [207][206] 1190 [142] 1200 [143]"PRINT ON SCREEN 1210 POKE53280,11:REM" FRAME COLOR 1270 [153]"LOADSYS ***** (null)ATNLENVAL (null)(null)ATNLEN(null) (null)2.11 ***** " 1280 [153] " DRIVER 1: SYS LAPS  DRIVER 2:SYS" 1290 [153] " LAP TIME : LAP TIME :" 1295 [153] " INTERIM 1: INTERIM 2:" 1300 [153] " DRIVEN : DRIVEN :" 1310 [153] " TO GO : TO GO :" 1320 [153] " TOTAL TIME TOTAL TIME" 1330 [153] " BEST TIME: BEST TIME:" 1390 [142] 1400 [143] "ENTER DRIVERS & # OF LAPS 1410 PRINT "";PO$(1);" ";S1$ 1420 PRINT "[144]";PO$(1); 1430 INPUT S1$ 1440 S3$=RIGHT$(" "+S1$,INT((10-LEN(S1$))/2)+LEN(S1$)) 1450 PRINT "[144]";PO$(1);" [157][157][157][157][157]";S3$;" " 1460 PRINT "";PO$(2);" ";S2$ 1470 PRINT "[144]";PO$(2); 1480 INPUT S2$ 1490 S4$=RIGHT$(" "+S2$,INT((10-LEN(S2$))/2)+LEN(S2$)) 1500 PRINT "[144]";PO$(2);" [157][157][157][157][157]";S4$;" " 1510 PRINT"";L0% 1520 PRINT""; 1530 INPUT A$ 1540 IF VAL(A$)<1 OR VAL(A$)>99 THEN 1510 1550 L0%=VAL(A$):RU%=L0% 1560 PRINT" [157][157][157][157]";L0% 1590 RETURN 1600 REM" POWER [207][206] 1610 [143]" (null)ELAIS AT CASSETTE PORT 1620 POKE192,0:POKE1,PEEK(1)AND39 1630 REM" [210]ELAIS AT [213][211][197][210] [208]ORT 1640 [151] 56577,255 1695 [142] 1700 [143]" POWER (null)ASCASC 1710 REM" [210]ELAIS AT CASSETTE PORT 1720 [151]192,1:[151]1,[194](1)[176]32 1730 [143]" (null)ELAIS AT (null)(null)VAL(null) (null)ORT 1740 POKE 56577,0 1795 RETURN 1900 REM" END PROGRAM 1910 [158] 49220:[143]" RESET (null)RIGHT$(null)VAL(null)-(null)2 1920 POKE 56325,58:REM" RESET # [201][210][209] 1930 [151]53280,6:[151]53281,6:[143]" RESET COLORS 1935 GOSUB 1600:REM" POWER [207][206] 1940 [153]"LOAD" 1945 [151] 53370,0:[143]" (null)LEN(null)(null) -> 1(null)LEFT$Z 1950 A=110:GOSUB 1000 1955 FOR L=0 TO W*100:NEXT 1960 A=60:GOSUB 1000 1965 FOR L=0 TO W*100:NEXT 1970 A=160:GOSUB 1000 1975 FOR L=0 TO W*100:NEXT 1980 A=100:GOSUB 1000 1985 POKE 53371,0:REM" [211][195][208][213] -> 20[205][200]Z 1990 [128] 2000 [143]" (null)EADY, (null)TEADY, CHR$(null)! 2005 GOSUB 1700:REM" POWER [207][206] 2010 [151] 53370,0:[143]" (null)LEN(null)(null) -> 1(null)LEFT$Z 2020 POKE 53280,6:REM" FRAME COLOR 2030 [153]"PREPARE FOR RACE" 2040 A[178]100:[141] 1000:[143] "SOUND 2050 FOR L=0 TO W*2000:NEXT:REM" WAIT 2060 [151] 53280,7:[143]"CHANGE FRAME COLOR 2070 PRINT" [210][197][193][196][217]! " 2080 A=80:GOSUB1000:REM "SOUND 2090 [129] L[178]0 [164] W[172]5000:[130]:[143]"WAIT 2100 POKE 53280,2:REM" FRAME COLOR 2110 [153]" (null)(null)VALATNSTR$(null)! " 2120 A[178]90:[141]1000:[143] "SOUND 2130 FOR L=0 TO W*3000:NEXT:REM"WAIT 2140 [151] 53280,5 2150 [153]" CHR$(null) ! WAIT" 2160 A[178]120:[141]1000:[143] "SOUND 2170 POKE 53371,0:REM" [211][195][208][213] -> 20[205][200]Z 2180 [141] 1600:[143]" POWER (null)(null) 2190 RETURN 3000 REM" [210]ACE (TWO [208]LAYER + INTERIM) 3010 [143]" DETERMINE START TIME: 3020 GET A$ 3025 IF A$<>"" THEN RETURN: REM" STOP 3030 [139] [194](49236)[178]255 [167] 3100:[143]" DRIVER1 DID NOT STARTED YET 3040 T%=PEEK(49236):REM" 1/10 3042 S%[178][194](49235):[143]" (null)ECONDS 3044 M%=PEEK(49234):REM" [205]INUTES 3046 [141] 4700:[143]" TOTAL TIME IN 1/10 3050 Z0%=Z%: REM" [205]ASTERTIME 3070 ZL%(1)[178]Z0%:ZL%(2)[178]Z0% 3080 [137] 3200 3100 [139] [194](49239)[178]255 [167] 3190:[143]" DRIVER2 DID NOT STARTED YET 3110 T%=PEEK(49239):REM" 1/10 3112 S%[178][194](49238):[143]" (null)ECONDS 3114 M%=PEEK(49237):REM" [205]INUTES 3116 [141] 4700:[143]" TOTAL TIME IN 1/10 3120 Z0%=Z%: REM" [205]ASTERTIME 3140 ZL%(2)[178]Z0%:ZL%(1)[178]Z0% 3150 [137] 3200 3190 [137] 3010:[143]" (null)TART DID NOT HAPPENED YET 3200 REM" [211]TART ALWAYS DONE 3300 [143]" RIGHT$NTERIMS ? 3305 REM" [208]LAYER 1 3310 [139] [194](49242)[178]255 [167] 3410:[143]" DRIVER1 NO INTERIM 3320 T%=PEEK(49242):REM" 1/10 3322 S%[178][194](49241):[143]" (null)ECONDS 3324 M%=PEEK(49240):REM" [205]INUTES 3326 [141] 4700:[143]" TOTAL TIME 1/10 3330 G=Z%-ZL%(1):REM" TIME DIFERENCE TO LAST FINIS LINE 3340 [141] 4900:[143]" CHANGE TO M$S$T$ 3350 PRINT"";PO$(1);G$ 3360 POKE 49242,255:REM" RESET TIME 3400 [143]" (null)LAYER 2 3410 IF PEEK(49245)=255 THEN 3500:REM" [208]LAYER 2 NO INTERIM 3420 T%[178][194](49245):[143]" 1/10 3422 S%=PEEK(49244):REM" [211]ECONDS 3424 M%[178][194](49243):[143]" (null)INUTES 3426 GOSUB 4700:REM" TOTAL TIME 1/10 3430 G[178]Z%[171]ZL%(2):[143]" STR$IFFERENCE TO LAST FINISH LINE 3440 GOSUB 4900:REM" [195]HANGE TO M$S$T$ 3450 [153]"";PO$(2);G$ 3460 [151] 49245,255:[143]" RESET TIME 3500 REM" [198]INISH LINE ? 3505 [143]" (null)PIELER 1 3510 IF PEEK(49236)=255 THEN 3710:REM" [208]LAYER 1 NOT 3515 [139] F1%[178]1 [167] 3690:[143]"PERMANENT CONTACT 3520 T%=PEEK(49236):REM" 1/10 3522 S%[178][194](49235):[143]" (null)EKUNDEN 3524 M%=PEEK(49234):REM" [205]INUTEN 3526 [141] 4700:[143]" TOTAL TIME 1/10 (T%, S%, M% -> Z%) 3530 L%(1)=L%(1)+1:REM" LAP DRIVEN 3540 ZR%(1)[178]Z%[171]ZL%(1):[143]" LAP TIME 3545 IF L%(1)>L0% THEN 3590:REM" ALL LAPS DRIVEN 3550 ZG%(1)[178]Z%[171]Z0%:[143]" (null)OTAL TIME 3560 IF(ZR%(1)0)THEN ZB%(1)=ZR%(1):REM" NEW BEST TIME 3590 ZL%(1)[178]Z% 3600 [143]" PRINT ON SCREEN 3610 G=ZR%(1):GOSUB 4900:REM" [195]HANGE (G -> G$) 3620 [153]"";PO$(1);G$ 3625 G[178]0:[141] 4900:[143]" RESET INTERIM 3626 PRINT"";PO$(1);G$ 3630 PRINT"";PO$(1);" [157][157][157]";L%(1) 3640 PRINT"";PO$(1);" [157][157][157]";L0%-L%(1) 3650 G=ZG%(1):GOSUB 4900:REM" [195]HANGE 3660 [153]"";PO$(1);G$ 3670 [139] L%(1)[178]0 [167] 3690:[143]"NO BEST TIME 3672 G=ZB%(1):GOSUB 4900:REM" CHANGE 3680 [153]"";PO$(1);G$ 3690 [151]49236,255:[143]" 1/10 'CLEAR' 3692 POKE53370,0:POKE56325,1:WAIT 56325,1:POKE53371,0:POKE56325,EM 3693 REM" WAIT FOR INTERRUPT 3695 [139] [194](49236)[179]255 [167] F1%[178]1:[137] 3700:[143]" PERMANTENT CONTACT 3697 F1%=0:REM" NO PERMANENT CONTACT 3700 [143]" (null)LAYER 2 3710 IF PEEK(49239)=255 THEN 4000:REM" [208]LAYER 2 NO FINISH 3715 [139] F2%[178]1 [167] 3890:[143]"PERMANENT CONTACT 3720 T%=PEEK(49239):REM" 1/10 3722 S%[178][194](49238):[143]" (null)EKUNDEN 3724 M%=PEEK(49237):REM" [205]INUTEN 3726 [141] 4700:[143]" TOTAL TIME 1/10 3730 L%(2)=L%(2)+1:REM" LAP DRIVEN 3740 ZR%(2)[178]Z%[171]ZL%(2):[143]" LAP TIME 3745 IF L%(2)>L0% THEN 3790:REM" ALL LAPS DRIVEN 3750 ZG%(2)[178]Z%[171]Z0%:[143]" TOTAL TIME 3760 IF(ZR%(2)0)THEN ZB%(2)=ZR%(2):REM" NEW BEST TIME 3790 ZL%(2)[178]Z% 3800 [143]" PRINT TO SCREEN 3810 G=ZR%(2):GOSUB 4900:REM" [195]HANGE 3820 [153]"";PO$(2);G$ 3825 G[178]0:[141] 4900:[143]" RESET INTERIM 3826 PRINT"";PO$(2);G$ 3830 PRINT"";PO$(2);" [157][157][157]";L%(2) 3840 PRINT"";PO$(2);" [157][157][157]";L0%-L%(2) 3850 G=ZG%(2):GOSUB 4900:REM" [195]HANGE 3860 [153]"";PO$(2);G$ 3870 [139] L%(2)[178]0 [167] 3890:[143]"NO BEST TIME 3872 G=ZB%(2):GOSUB 4900:REM" [195]ANGE 3880 [153]"";PO$(2);G$ 3890 [151]49239,255 3892 [151]53370,0:[151]56325,1:[146] 56325,1:[151]53371,0:[151]56325,EM 3893 [143]" WAIT FOR INTERRUPT 3895 IF PEEK(49239)<255 THEN F2%=1:GOTO 4000:REM" PERMANENT CONTACT 3897 F2%[178]0:[143]" NO PERMANENT CONTACT 4000 IF(L%(1)=RU%)OR(L%(2)=RU%)THEN POKE 53280,6:RU%=-2:GOSUB 1000 4100 GET A$:REM" CANCEL ? 4110 [139]((L%(1)[179]L0%)[176](L%(2)[179]L0%))[175](A$[178]"")[167] 3300:[143]" NO END 4130 GOSUB1000 4140 RETURN 4700 REM" CALCULATE TOTAL TIME IN 1/10 --> M%,S%,T% (NORMAL-[198]ORMAT) 4701 [143]" <-- Z% (NORMAL-ASCORMAT) 4710 Z%=M%*600 4711 REM" [205]INUTES TO 1/10 4720 Z%[178]Z%[170]S%[172]10 4721 [143]" (null)ECONDS TO 1/10 AND ADD 4730 Z%=Z%+T% 4731 REM" ADD 1/10 4790 [142] 4900 [143]" (null)INUTES, (null)ECONDS, 1/10 CALCULATE FROM TOTAL 1/10 4901 REM" --> G 4902 [143]" <-- G$ 4910 Z=INT((G/10-INT(G/10))*10):REM"1/10 4920 G[178][181](G[173]10):[143]" SUB 1/10 4930 S=INT((G/60-INT(G/60))*60):REM"SEC 4940 M[178][181](G[173]60):[143]" (null)INUTES 4950 G$=" "+RIGHT$(STR$(M),2)+"M" 4960 G$=G$+RIGHT$(STR$(S),2)+"." 4970 G$=G$+RIGHT$(STR$(Z),1)+"S" 4990 RETURN